package fr.afcepf.al23.qualite.data;

import fr.afcepf.al23.qualite.entity.Utilisateur;

/**
 * Classe representant l'interface utilisateur de l'appli.
 * @author Stagiaire
 */
public interface IDaoUtilisateur {
    /**
     * Methode permettant de verifier si un {@link Utilisateur} existe bien dans
     * l'application à l'aide de son mail et de son mot de passe.
     * @param mail
     *            le mail de l'{@link Utilisateur}.
     * @param mdp
     *            le mdp de l'{@link Utilisateur}.
     * @return un utiliteur identifié ou non.
     */
    Utilisateur seConnecter(String mail, String mdp);

    /**
     * Methode permettant de faire persister un {@link Utilisateur} dans le
     * systeme d'info.
     * @param util
     *            l' {@link Utilisateur} à fzire persister.
     * @return <ul>
     *         <li>
     *         un {@link Utilisateur} avec sa clé primaire renseignéé si l'ajout
     *         a fonctionné.</li>
     *         </ul>
     */
    Utilisateur enregister(Utilisateur util);

    /**
     * Methode permettant de vérifier l'existance d'un {@link Utilisateur}
     * possédant cette adresse mail.
     * @param mail
     *            l'adresse mail a verifier l' {@link Utilisateur} à fzire
     *            persister.
     * @return <ul>
     *         <li>true: elle existe dans le SI.</li>
     *         <li>false: elle est dispo dans le SI.</li>
     *         </ul>
     */
    boolean verifMail(String mail);
}
